<template>
	<view>
	  <router-view />
	</view>
  </template>
  
  <script>
  import { createPinia } from 'pinia'
  import { useUserStore } from '@/store/user'
  import { connect, disconnect } from '@/utils/websocket'
  
  export default {
	async onLaunch() {
    // 初始化Pinia
    if (!this.$pinia) {
      this.$pinia = createPinia()
      this.$app.use(this.$pinia)
    }
    // 自动静默登录
    try {
      await useUserStore().initUserState()
      // 登录成功后初始化WebSocket连接
      this.initWebSocket()
    } catch (error) {
      console.error('用户登录失败:', error)
    }
  },

	onShow() {
	  console.log('App Show')
	  // 应用从后台进入前台时，检查WebSocket连接状态
	  this.checkWebSocketConnection()
	},

	onHide() {
	  console.log('App Hide')
	},

	onUnload() {
	  // 应用卸载时关闭WebSocket连接
	  disconnect()
	},

	methods: {
	  /**
	   * 初始化WebSocket连接
	   */
	  initWebSocket() {
		try {
		  const userStore = useUserStore()
		  if (userStore.deliveryId) {
			console.log('初始化WebSocket连接，配送员ID:', userStore.deliveryId)
			
			// 建立WebSocket连接
			connect()
		  } else {
			console.warn('配送员ID不存在，无法建立WebSocket连接')
		  }
		} catch (error) {
		  console.error('初始化WebSocket连接失败:', error)
		}
	  },

	  /**
	   * 检查WebSocket连接状态
	   */
	  checkWebSocketConnection() {
		// 由于websocket.js没有导出getStatus方法，这里简化处理
		// 直接尝试重新连接
		console.log('检查WebSocket连接状态，尝试重新连接')
		connect()
	  },

	  /**
	   * 处理出餐消息
	   */
	  handleMealReadyMessage(message) {
		console.log('收到出餐通知:', message)
		
		// 发送系统通知
		uni.showModal({
		  title: '出餐通知',
		  content: `订单${message.orderId}已出餐，商户：${message.merchantName}，请及时取餐！`,
		  showCancel: false,
		  confirmText: '知道了'
		})
	  },

	  /**
	   * WebSocket连接打开
	   */
	  handleWebSocketOpen(data) {
		console.log('WebSocket连接已建立:', data)
	  },

	  /**
	   * WebSocket连接关闭
	   */
	  handleWebSocketClose(data) {
		console.log('WebSocket连接已关闭:', data)
	  },

	  /**
	   * WebSocket连接错误
	   */
	  handleWebSocketError(error) {
		console.error('WebSocket连接错误:', error)
	  }
	}
  }
  </script>
  
  <style lang="scss">
  /* 引入uni.scss */
  @import '@/uni.scss';
  

  /* 全局样式 */
  page {
	min-height: 100vh;
	background-color: #f8fafc;
	background-image: linear-gradient(135deg, #f8fafc 0%, #e2e8f0 50%, #f1f5f9 100%);
	font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  }
  
  /* 全局按钮样式重置 */
  button {
	border: none;
	outline: none;
	box-sizing: border-box;
  }
  
  /* 全局文字颜色 */
  .text-primary {
	color: #1f2937;
  }
  
  .text-secondary {
	color: #6b7280;
  }
  
  .text-light {
	color: #9ca3af;
  }
  </style>